package com.gopay.solution.domain.vo;

import java.util.Map;

/**
 * 账户模型树节点
 * 
 * @AcctTreeNode.java
 * @author MA HUAN
 * @2013-3-26 下午3:56:13 www.gopay.com.cn Inc.All rights reserved.
 */
public final class AcctTreeNode {

    /**
     * 节点类型， 分为 产品线， 产品，账户
     * 
     * @AcctTreeNode.java
     * @author MA HUAN
     * @2013-3-26 下午3:56:28 www.gopay.com.cn Inc.All rights reserved.
     */
    public enum TYPE {
        LINE, PROD, ACCT
    }

    /**
     * 节点类型
     */
    private final TYPE type;

    /**
     * 当前节点父节点，如果当前节点为根节点，则为null
     */
    private AcctTreeNode father;

    /**
     * 当前节点子节点列表，如果当前节点为叶子，则为null
     */
    private Map<String, AcctTreeNode> children;

    /**
     * 节点数据，账户模型中节点数据为（产品线，产品，账户）的ID
     */
    private String data;

    public AcctTreeNode(TYPE type) {
        this.type = type;
    }

    public AcctTreeNode getFather() {
        return father;
    }

    public void setFather(AcctTreeNode father) {
        this.father = father;
    }

    public Map<String, AcctTreeNode> getChildren() {
        return children;
    }

    public void setChildren(Map<String, AcctTreeNode> children) {
        this.children = children;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public TYPE getType() {
        return type;
    }

}
